<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>[Generic Component Framework v3] GCF::ObjectTree Class Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<!--link href="tabs.css" rel="stylesheet" type="text/css"-->
</head><body>
 <div id="wrapper">
    <div id="logo_box">
        <a class="img_link" href="https://github.com/pnudupa/gcf" target="_blank" ><img style="float:left;margin-left:10px;margin-top:5px;margin-bottom:5px;"src="header_gcf_logo.jpg" alt="GCF LOGO"/></a>
        <a class="img_link" href="https://www.vcreatelogic.com/" target="_blank" ><img style="float:right;margin-right:10px; margin-top: 30px;" src="header_vcl_logo.jpg" alt="VCL LOGO"/></a>
        <div style="clear:both"></div>
    </div>
    <div class="nav">
        <ul>
            <li class="selectedpage">
                <a class="a-home" href="index.html" >
                    <span>Home</span>
                </a>
            </li>
            <li>
                <a class="a-classes " href="classes.html">
                    <span>All Classes</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_modules.html">
                    <span>Modules</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_guides_and_videos.html">
                    <span>Guides & Videos</span>
                </a>
            </li>
            <li>
                <a class="a-home " href="gcf_tools_and_inbuilt_components.html">
                    <span>Tools & Components</span>
                </a>
            </li>
        </ul>
    </div>
    <div id="main-content">
        <div class="inside">
        <div>
<!-- Generated by Doxygen 1.8.16 -->
<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>GCF</b></li><li class="navelem"><a class="el" href="class_g_c_f_1_1_object_tree.html">ObjectTree</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#signals">Signals</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="class_g_c_f_1_1_object_tree-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">GCF::ObjectTree Class Reference<div class="ingroups"><a class="el" href="group__gcf__core.html">GCF Core Module</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>A class for representing a logical object-tree structure.  
 <a href="class_g_c_f_1_1_object_tree.html#details">More...</a></p>

<p><code>#include &lt;GCF3/ObjectTree&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="signals"></a>
Signals</h2></td></tr>
<tr class="memitem:a0a2df3b6342786910574b90b168b1205"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#a0a2df3b6342786910574b90b168b1205">nodeAdded</a> (<a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *parent, <a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *child)</td></tr>
<tr class="separator:a0a2df3b6342786910574b90b168b1205"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa721a06ae426bf6f44fcb8cce5030f6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#afa721a06ae426bf6f44fcb8cce5030f6">nodeRemoved</a> (<a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *parent, <a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *child)</td></tr>
<tr class="separator:afa721a06ae426bf6f44fcb8cce5030f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc542a09d723d15b08ef30a96e243377"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#acc542a09d723d15b08ef30a96e243377">nodeObjectDestroyed</a> (<a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *<a class="el" href="class_g_c_f_1_1_object_tree.html#ac5904a3a626f5f7cf0e071acd349abe3">node</a>)</td></tr>
<tr class="separator:acc542a09d723d15b08ef30a96e243377"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ae6c760895beea208d1b8be1eeebb8930"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#ae6c760895beea208d1b8be1eeebb8930">ObjectTree</a> (QObject *parent=nullptr)</td></tr>
<tr class="separator:ae6c760895beea208d1b8be1eeebb8930"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a05ef39dfa496331112eb4e2367b3c045"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#a05ef39dfa496331112eb4e2367b3c045">~ObjectTree</a> ()</td></tr>
<tr class="separator:a05ef39dfa496331112eb4e2367b3c045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a56c315c653c7d1faa5e69801ebb19f1c"><td class="memItemLeft" align="right" valign="top">const QVariantMap &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#a56c315c653c7d1faa5e69801ebb19f1c">info</a> () const</td></tr>
<tr class="separator:a56c315c653c7d1faa5e69801ebb19f1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af2de7889c3d6f35c705e85be5e1c93aa"><td class="memItemLeft" align="right" valign="top">QVariantMap &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#af2de7889c3d6f35c705e85be5e1c93aa">writableInfo</a> ()</td></tr>
<tr class="separator:af2de7889c3d6f35c705e85be5e1c93aa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6bc4d408b4be90c82b4e084293416733"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">ObjectTreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#a6bc4d408b4be90c82b4e084293416733">rootNode</a> () const</td></tr>
<tr class="separator:a6bc4d408b4be90c82b4e084293416733"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac5904a3a626f5f7cf0e071acd349abe3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">ObjectTreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#ac5904a3a626f5f7cf0e071acd349abe3">node</a> (const QString &amp;path) const</td></tr>
<tr class="separator:ac5904a3a626f5f7cf0e071acd349abe3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aefcc2b955cb22f06b556b07a1351cb3c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">ObjectTreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#aefcc2b955cb22f06b556b07a1351cb3c">node</a> (QObject *<a class="el" href="class_g_c_f_1_1_object_tree.html#a1ca4b8246915c3f73c86706cbc9f9021">object</a>) const</td></tr>
<tr class="separator:aefcc2b955cb22f06b556b07a1351cb3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ca4b8246915c3f73c86706cbc9f9021"><td class="memItemLeft" align="right" valign="top">QObject *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#a1ca4b8246915c3f73c86706cbc9f9021">object</a> (const QString &amp;path) const</td></tr>
<tr class="separator:a1ca4b8246915c3f73c86706cbc9f9021"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a528a8628c1c43f7bb773228828c88a15"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:a528a8628c1c43f7bb773228828c88a15"><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">ObjectTreeNode</a> *&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#a528a8628c1c43f7bb773228828c88a15">findObjectNode</a> () const</td></tr>
<tr class="separator:a528a8628c1c43f7bb773228828c88a15"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba8c6a33bef5d33a49fced93a27e20e3"><td class="memTemplParams" colspan="2">template&lt;class T &gt; </td></tr>
<tr class="memitem:aba8c6a33bef5d33a49fced93a27e20e3"><td class="memTemplItemLeft" align="right" valign="top">QList&lt; <a class="el" href="class_g_c_f_1_1_object_tree_node.html">ObjectTreeNode</a> * &gt;&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#aba8c6a33bef5d33a49fced93a27e20e3">findObjectNodes</a> () const</td></tr>
<tr class="separator:aba8c6a33bef5d33a49fced93a27e20e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a049250116feca8790806300e8fff1c0d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">ObjectTreeNode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#a049250116feca8790806300e8fff1c0d">findObjectNode</a> (const QString &amp;className) const</td></tr>
<tr class="separator:a049250116feca8790806300e8fff1c0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae910fa2242c85545ce3b19a4bf3ebb9e"><td class="memItemLeft" align="right" valign="top">QList&lt; <a class="el" href="class_g_c_f_1_1_object_tree_node.html">ObjectTreeNode</a> * &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_tree.html#ae910fa2242c85545ce3b19a4bf3ebb9e">findObjectNodes</a> (const QString &amp;className) const</td></tr>
<tr class="separator:ae910fa2242c85545ce3b19a4bf3ebb9e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_g_c_f_1_1_object_map_event_listener"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_g_c_f_1_1_object_map_event_listener')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_g_c_f_1_1_object_map_event_listener.html">GCF::ObjectMapEventListener</a></td></tr>
<tr class="memitem:a9db5dad4abfd8b9aaf74e2ed95976d62 inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_map_event_listener.html#a9db5dad4abfd8b9aaf74e2ed95976d62">ObjectMapEventListener</a> ()</td></tr>
<tr class="separator:a9db5dad4abfd8b9aaf74e2ed95976d62 inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92807c8dcb2443d3b737d1deb23053d7 inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_map_event_listener.html#a92807c8dcb2443d3b737d1deb23053d7">~ObjectMapEventListener</a> ()</td></tr>
<tr class="separator:a92807c8dcb2443d3b737d1deb23053d7 inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adfabe2440ff25e32276f79f1f1cd4b3f inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memItemLeft" align="right" valign="top">virtual QString&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_map_event_listener.html#adfabe2440ff25e32276f79f1f1cd4b3f">listenerType</a> () const</td></tr>
<tr class="separator:adfabe2440ff25e32276f79f1f1cd4b3f inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68df2af538ab51e27efff04e07cd9611 inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_map_event_listener.html#a68df2af538ab51e27efff04e07cd9611">objectInserted</a> (QObject *object)</td></tr>
<tr class="separator:a68df2af538ab51e27efff04e07cd9611 inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc6d593a721948f0f6b0e9972d7ecd8d inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_g_c_f_1_1_object_map_event_listener.html#afc6d593a721948f0f6b0e9972d7ecd8d">objectDeleted</a> (QObject *object)</td></tr>
<tr class="separator:afc6d593a721948f0f6b0e9972d7ecd8d inherit pub_methods_class_g_c_f_1_1_object_map_event_listener"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>This class was primarily designed for use with <a class="el" href="class_g_c_f_1_1_application_services.html">GCF::ApplicationServices</a> to capture a tree structure of components and their objects (</p><dl class="section see"><dt>See also</dt><dd>GCF::ApplicationServies::objectTree()) But it can also be used to represent any tree of nodes (<a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> instances) where each <a class="el" href="class_g_c_f_1_1_object_tree.html#ac5904a3a626f5f7cf0e071acd349abe3">node</a> represents one single <code>QObject</code>.</dd></dl>
<div class="image">
<img src="object-tree.png" alt=""/>
</div>
<ul>
<li><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> represents a single node in the tree. Each node can have several children, which in turn can have several children each and so on. A </li>
<li><a class="el" href="class_g_c_f_1_1_object_tree.html">GCF::ObjectTree</a> has a single root-node; which can be accessed via the <a class="el" href="class_g_c_f_1_1_object_tree.html#a6bc4d408b4be90c82b4e084293416733">rootNode()</a> method. The name of root-node is always "Application". The object managed by the root node is always the <code>QCoreApplication</code> instance in the application (or the object tree itself for non-event-loop applications).</li>
</ul>
<p>A node is characterized by the following fields </p><ul>
<li><code>name</code> - name of the node. [No two nodes can have the same name within the same hierarchy, although this rule is not enforced] </li>
<li><code>path</code> - a dot (.) separated list of names that uniquely identiies a node in the tree </li>
<li><code>object</code> - pointer to a <code>QObject</code> that the node is managing. The pointer will be NULL if the object got deleted after the node was constructed, or if no object was specified during the construction of the node. [No two nodes in the entire tree must point to the same object, although this rule is not enforced.] </li>
<li><code>info</code> - a <code>QVariantMap</code> of key=value pairs.</li>
</ul>
<p>Whenever a node is added to any sub-tree within the object tree the <a class="el" href="class_g_c_f_1_1_object_tree.html#a0a2df3b6342786910574b90b168b1205">nodeAdded()</a> signal is emitted. When an object managed by the node is destroyed the <a class="el" href="class_g_c_f_1_1_object_tree.html#acc542a09d723d15b08ef30a96e243377">nodeObjectDestroyed()</a> signal is emitted. The <a class="el" href="class_g_c_f_1_1_object_tree.html#afa721a06ae426bf6f44fcb8cce5030f6">nodeRemoved()</a> signal is emitted whenever a node is deleted from the object tree.</p>
<p>Nodes can be searched in the object-tree by using any of the following methods </p><ul>
<li>node(QString) - search for node by path </li>
<li>node(QObject*) - search for node by object that it is managing</li>
</ul>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_g_c_f_1_1_object_tree_node.html" title="Represents a node in GCF::ObjectTree.">GCF::ObjectTreeNode</a> </dd></dl>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="ae6c760895beea208d1b8be1eeebb8930"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae6c760895beea208d1b8be1eeebb8930">&#9670;&nbsp;</a></span>ObjectTree()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GCF::ObjectTree::ObjectTree </td>
          <td>(</td>
          <td class="paramtype">QObject *&#160;</td>
          <td class="paramname"><em>parent</em> = <code>nullptr</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Constructs a object tree</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">parent</td><td>pointer to the parent object of this object-tree instance. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a05ef39dfa496331112eb4e2367b3c045"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a05ef39dfa496331112eb4e2367b3c045">&#9670;&nbsp;</a></span>~ObjectTree()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">GCF::ObjectTree::~ObjectTree </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Destructor. All nodes managed by this object tree are automatically deleted. The objects that the nodes refer-to are not deleted. </p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="a56c315c653c7d1faa5e69801ebb19f1c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a56c315c653c7d1faa5e69801ebb19f1c">&#9670;&nbsp;</a></span>info()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const QVariantMap &amp; GCF::ObjectTree::info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a const reference to the information table (<code>QVariantMap</code>) maintained against this node. </dd></dl>

</div>
</div>
<a id="af2de7889c3d6f35c705e85be5e1c93aa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af2de7889c3d6f35c705e85be5e1c93aa">&#9670;&nbsp;</a></span>writableInfo()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QVariantMap &amp; GCF::ObjectTree::writableInfo </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a reference to the information table (<code>QVariantMap</code>) maintained against this node. </dd></dl>

</div>
</div>
<a id="a6bc4d408b4be90c82b4e084293416733"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6bc4d408b4be90c82b4e084293416733">&#9670;&nbsp;</a></span>rootNode()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> * GCF::ObjectTree::rootNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>a pointer the root node of this object tree </dd></dl>

</div>
</div>
<a id="ac5904a3a626f5f7cf0e071acd349abe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac5904a3a626f5f7cf0e071acd349abe3">&#9670;&nbsp;</a></span>node() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> * GCF::ObjectTree::node </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>path of the node that is being searched </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the node at <code>path</code> OR null if no such node exists </dd></dl>

</div>
</div>
<a id="aefcc2b955cb22f06b556b07a1351cb3c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aefcc2b955cb22f06b556b07a1351cb3c">&#9670;&nbsp;</a></span>node() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> * GCF::ObjectTree::node </td>
          <td>(</td>
          <td class="paramtype">QObject *&#160;</td>
          <td class="paramname"><em>object</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">object</td><td>pointer to an object that is referenced by any of the nodes in this tree </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>a pointer to the node at that references object OR null if no such node exists </dd></dl>

</div>
</div>
<a id="a1ca4b8246915c3f73c86706cbc9f9021"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1ca4b8246915c3f73c86706cbc9f9021">&#9670;&nbsp;</a></span>object()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QObject * GCF::ObjectTree::object </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>path</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">path</td><td>path of the node that is being searched </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to the <code>QObject</code> referenced by the node that was searched OR null if no such node exists.</dd></dl>
<p>Same as <code>node(path)-&gt;<a class="el" href="class_g_c_f_1_1_object_tree.html#a1ca4b8246915c3f73c86706cbc9f9021">object()</a></code> </p>

</div>
</div>
<a id="a528a8628c1c43f7bb773228828c88a15"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a528a8628c1c43f7bb773228828c88a15">&#9670;&nbsp;</a></span>findObjectNode() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> * GCF::ObjectTree::findObjectNode </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function offers the capacity to search the object tree for an object of type <code>T</code> </p>
<dl class="section return"><dt>Returns</dt><dd>pointer to a node that reference an object of type <code>T</code> OR null if no such node was found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>if the object tree has several nodes referencing objects of type <code>T</code>, then a pointer to any one of them is returned.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_g_c_f_1_1_object_tree.html#aba8c6a33bef5d33a49fced93a27e20e3">findObjectNodes&lt;T&gt;()</a> </dd></dl>

</div>
</div>
<a id="aba8c6a33bef5d33a49fced93a27e20e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aba8c6a33bef5d33a49fced93a27e20e3">&#9670;&nbsp;</a></span>findObjectNodes() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;class T &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">QList&lt; <a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> * &gt; GCF::ObjectTree::findObjectNodes </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function offers the capacity to search the object tree for an objects of type <code>T</code> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">className</td><td>name of the class or interface whose object we are searching in this object-tree</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>list of pointers to a nodes that reference objects of type <code>T</code>. The returned list will be empty if no such nodes were found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>no guarantee is made about the order in which the nodes are returned.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_g_c_f_1_1_object_tree.html#a528a8628c1c43f7bb773228828c88a15">findObjectNode&lt;T&gt;()</a> </dd></dl>

</div>
</div>
<a id="a049250116feca8790806300e8fff1c0d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a049250116feca8790806300e8fff1c0d">&#9670;&nbsp;</a></span>findObjectNode() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> * GCF::ObjectTree::findObjectNode </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>className</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function offers the capacity to search the object tree for an object of type <code>className</code> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">className</td><td>name of the class or interface whose object we are searching in this object-tree</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>pointer to a node that reference an object of type <code>className</code> OR null if no such node was found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>if the object tree has several nodes referencing objects of type <code>className</code>, then a pointer to any one of them is returned.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_g_c_f_1_1_object_tree.html#aba8c6a33bef5d33a49fced93a27e20e3">findObjectNodes()</a> </dd></dl>

</div>
</div>
<a id="ae910fa2242c85545ce3b19a4bf3ebb9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae910fa2242c85545ce3b19a4bf3ebb9e">&#9670;&nbsp;</a></span>findObjectNodes() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">QList&lt; <a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> * &gt; GCF::ObjectTree::findObjectNodes </td>
          <td>(</td>
          <td class="paramtype">const QString &amp;&#160;</td>
          <td class="paramname"><em>className</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function offers the capacity to search the object tree for an objects of type <code>className</code> </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">className</td><td>name of the class or interface whose object we are searching in this object-tree</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>list of pointers to a nodes that reference objects of type <code>className</code>. The returned list will be empty if no such nodes were found.</dd></dl>
<dl class="section note"><dt>Note</dt><dd>no guarantee is made about the order in which the nodes are returned.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="class_g_c_f_1_1_object_tree.html#a528a8628c1c43f7bb773228828c88a15">findObjectNode()</a> </dd></dl>

</div>
</div>
<a id="a0a2df3b6342786910574b90b168b1205"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a2df3b6342786910574b90b168b1205">&#9670;&nbsp;</a></span>nodeAdded</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::ObjectTree::nodeAdded </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *&#160;</td>
          <td class="paramname"><em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *&#160;</td>
          <td class="paramname"><em>child</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">signal</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This signal is emitted whenever a node is added in the object-tree.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">parent</td><td>pointer to the parent node underwhich a new node was added </td></tr>
    <tr><td class="paramname">child</td><td>pointer to the child node, that was actually added </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="afa721a06ae426bf6f44fcb8cce5030f6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afa721a06ae426bf6f44fcb8cce5030f6">&#9670;&nbsp;</a></span>nodeRemoved</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::ObjectTree::nodeRemoved </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *&#160;</td>
          <td class="paramname"><em>parent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *&#160;</td>
          <td class="paramname"><em>child</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">signal</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This signal is emitted whenever a node is removed in the object tree. A node is removed only when it is destroyed or deleted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">parent</td><td>pointer to the parent node whose child was removed </td></tr>
    <tr><td class="paramname">child</td><td>pointer to the child-node that got deleted</td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>When this signal is emitted, you can call the <a class="el" href="class_g_c_f_1_1_object_tree_node.html#a169c0f869b4948beed7550b969aaaf94">GCF::ObjectTreeNode::info()</a> and <a class="el" href="class_g_c_f_1_1_object_tree_node.html#a293b2658f9a94d7fa45412e724e6c4d5">GCF::ObjectTreeNode::object()</a> and <a class="el" href="class_g_c_f_1_1_object_tree_node.html#a6648eea1209b367a59775bd30990718d">GCF::ObjectTreeNode::name()</a> methods on the child. After the signal delivery is complete, the <code>child</code> pointer will not be valid. </dd></dl>

</div>
</div>
<a id="acc542a09d723d15b08ef30a96e243377"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc542a09d723d15b08ef30a96e243377">&#9670;&nbsp;</a></span>nodeObjectDestroyed</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void GCF::ObjectTree::nodeObjectDestroyed </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_g_c_f_1_1_object_tree_node.html">GCF::ObjectTreeNode</a> *&#160;</td>
          <td class="paramname"><em>node</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">signal</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This signal is emitted whenever an object referenced by the node gets deleted.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">node</td><td>pointer to the node whose object got deleted. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div>
</div>
</div>
<div class="footer_content">
<table width="100%" class="footer">
<tr>
<td align="left" width="50%">Copyright &copy; 2013-2019,
 <a class="el" href="http://www.vcreatelogic.com" target="_black">VCreate Logic Private Limited</a></td>
<td align="right" width="50%"><a class="el" href="http://www.vcreatelogic.com/products/gcf" target="_black">GCF - Generic Component Framework</a></td>
</tr>
</table>
</div>
</div>
</body>
</html>
